const path = require('path')
const FixWebpack5EntryPlugin = require('./fix-webpack5-entry-plugin')

module.exports = {
  // 基本路径
  publicPath: './',
  
  // 输出文件目录
  outputDir: 'dist',
  
  // 放置静态资源目录
  assetsDir: 'static',
  
  // 生产环境 sourceMap
  productionSourceMap: false,
  
  // 开发服务器配置
  devServer: {
    port: 9090,
    https: false,
    open: false
  },
  
  // webpack 配置
  configureWebpack: {
    plugins: [
      new FixWebpack5EntryPlugin()
    ]
  },
  
  // 链式 webpack 配置
  chainWebpack: config => {
    // 修复 entry 配置 - 使用更安全的设置方式
    try {
      config.entry('app').clear().add('./src/main.js')
    } catch (e) {
      // 如果出错，使用基本配置
      config.entry = './src/main.js'
    }
    
    // 确保插件被正确添加
    try {
      config.plugin('fix-webpack5-entry').use(FixWebpack5EntryPlugin)
    } catch (e) {
      console.log('FixWebpack5EntryPlugin 添加失败:', e.message)
    }
  },
  
  // uni-app 特定配置
  pluginOptions: {
    'uni-app': {
      // 启用 v3 编译模式
      v3: true
    }
  }
}